import { BrowserModule } from '@angular/platform-browser';
import { ErrorHandler, NgModule} from '@angular/core';
import { FormsModule, ReactiveFormsModule} from '@angular/forms';

import { AppComponent } from './app.component';
import { RegisterComponent } from './page/register/register.component';
import { AppRoutingModule } from './app-routing.module';
import {MaterialModule} from './material.module';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';

import { HttpClientModule } from '@angular/common/http';
import { Api } from './service/api.service';
import { RegisterService } from './service/register.service';
import { SnackSuccessComponent } from './page/snack-success/snack-success.component';
import { SnackErrorComponent } from './page/snack-error/snack-error.component';
import { SnackService} from './service/snack.service';
import { LoginComponent } from './page/login/login.component';
import { AdminModule } from './page/admin/admin.module';
import {AdminRoutingModule} from './page/admin/admin-routing.module';
import {LoginService} from './service/login.service';
import { EditPasswordComponent } from './page/admin/edit-password/edit-password.component';
import {AccountService} from './service/account.service';
import { AccountInfoComponent } from './page/admin/account-info/account-info.component';
import { EditInfoComponent } from './page/admin/edit-info/edit-info.component';
import { PositionListComponent } from './page/admin/position-list/position-list.component';
import { AddPositionComponent } from './page/admin/add-position/add-position.component';
import { PageNotFindComponent } from './page/page-not-find/page-not-find.component';
import {CKEditorModule} from 'ng2-ckeditor';
import {CompanyService} from './service/company.service';
import {DeepCopyTool} from './tool/deepCopy.tool';
import {EditPositionComponent} from './page/admin/edit-position/edit-position.component';
import { PositionDetailsComponent, PositionDetailsDialogComponent } from './page/position-details/position-details.component';
import { ResumeListComponent } from './page/admin/resume-list/resume-list.component';
import { ResumeDetailsComponent } from './page/admin/resume-details/resume-details.component';
import { AddResumeComponent } from './page/admin/add-resume/add-resume.component';
import { EditResumeComponent } from './page/admin/edit-resume/edit-resume.component';
import { FindAllPositionsComponent } from './page/find-all-positions/find-all-positions.component';
import { ApplicationResultsComponent } from './page/admin/application-results/application-results.component';
import { ApplicationProcessComponent } from './page/admin/application-process/application-process.component';

@NgModule({
  declarations: [
    AppComponent,
    RegisterComponent,
    SnackSuccessComponent,
    SnackErrorComponent,
    LoginComponent,
    EditPasswordComponent,
    AccountInfoComponent,
    EditInfoComponent,
    PositionListComponent,
    AddPositionComponent,
    PageNotFindComponent,
    EditPositionComponent,
    PositionDetailsComponent,
    PositionDetailsDialogComponent,
    ResumeListComponent,
    ResumeDetailsComponent,
    AddResumeComponent,
    EditResumeComponent,
    FindAllPositionsComponent,
    ApplicationResultsComponent,
    ApplicationProcessComponent,
  ],
  imports: [
    BrowserModule,
    FormsModule,
    ReactiveFormsModule,
    AppRoutingModule,
    HttpClientModule,
    BrowserAnimationsModule,
    AdminModule,
    AdminRoutingModule,
    CKEditorModule,
    MaterialModule
  ],
  entryComponents: [
    SnackSuccessComponent,
    SnackErrorComponent,
    PositionDetailsDialogComponent
  ],
  providers: [
    RegisterService,
    Api,
    ErrorHandler,
    SnackService,
    LoginService,
    AccountService,
    CompanyService,
    DeepCopyTool
  ],
  bootstrap: [AppComponent]
})
export class AppModule { }
